//package com.atguigu.gulimall.basic.minio.service;
//
//import cn.hutool.core.date.DateTime;
//import cn.hutool.core.text.StrPool;
//import cn.hutool.core.util.StrUtil;
//import com.atguigu.gulimall.basic.minio.config.MinioProperties;
//import com.atguigu.gulimall.basic.minio.utils.MinioUtil;
//import io.minio.MinioClient;
//import io.minio.messages.Bucket;
//import org.springframework.stereotype.Service;
//import org.springframework.web.multipart.MultipartFile;
//
//import java.io.InputStream;
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map;
//import java.util.UUID;
//
///**
// * <p>
// *
// * </p>
// *
// * @author : yhd
// * @program: gulimall
// * @since : 2023-05-26 10:50
// */
//@Service
//public class MinioServiceImpl implements MinioService {
//
//    private final MinioUtil minioUtil;
//    private final MinioClient minioClient;
//    private final MinioProperties minioProperties;
//
//    public MinioServiceImpl(MinioUtil minioUtil, MinioClient minioClient, MinioProperties minioProperties) {
//        this.minioUtil = minioUtil;
//        this.minioClient = minioClient;
//        this.minioProperties = minioProperties;
//    }
//
//    @Override
//    public boolean bucketExists(String bucketName) {
//        return minioUtil.bucketExists(bucketName);
//    }
//
//
//    @Override
//    public void makeBucket(String bucketName) {
//        minioUtil.makeBucket(bucketName);
//    }
//
//    @Override
//    public List<String> listBucketName() {
//        return minioUtil.listBucketNames();
//    }
//
//    @Override
//    public List<Bucket> listBuckets() {
//        return minioUtil.listBuckets();
//    }
//
//    @Override
//    public boolean removeBucket(String bucketName) {
//        return minioUtil.removeBucket(bucketName);
//    }
//
//
//    @Override
//    public List<String> listObjectNames(String bucketName) {
//        return minioUtil.listObjectNames(bucketName);
//    }
//
//
//    @Override
//    public Map<String,String> putObject(MultipartFile file, String bucketName, String fileType) {
//        Map<String,String> returnMap = new HashMap<>(2);
//        try {
//            bucketName = StrUtil.isNotBlank(bucketName) ? bucketName : minioProperties.getBucketName();
//            if (!this.bucketExists(bucketName)) {
//                this.makeBucket(bucketName);
//            }
//            String fileName = file.getOriginalFilename();
//
//            String objectName = UUID.randomUUID().toString().replaceAll("-", "")
//                    + fileName.substring(fileName.lastIndexOf("."));
//            minioUtil.putObject(bucketName, file, objectName,fileType);
//            String fileUrl = minioProperties.getEndpoint() + StrPool.COLON + minioProperties.getPort() + "/" + bucketName + "/" + objectName;
//            returnMap.put("fileName",fileName);
//            returnMap.put("fileUrl",fileUrl);
//            returnMap.put("createTime", DateTime.now().toString());
//        } catch (Exception e) {
//            e.printStackTrace();
//            returnMap.put("error","上传失败");
//        }
//        return returnMap;
//
//    }
//
//    @Override
//    public InputStream downloadObject(String bucketName, String objectName) {
//        return minioUtil.getObject(bucketName,objectName);
//    }
//
//    @Override
//    public boolean removeObject(String bucketName, String objectName) {
//        return minioUtil.removeObject(bucketName, objectName);
//    }
//
//    @Override
//    public boolean removeListObject(String bucketName, List<String> objectNameList) {
//        return minioUtil.removeObject(bucketName,objectNameList);
//    }
//
//    @Override
//    public String getObjectUrl(String bucketName,String objectName) {
//        return minioUtil.getObjectUrl(bucketName, objectName);
//    }
//}
